package portal.facade;

import java.util.List;

import javax.ejb.Remote;

import portal.entidades.Articulo;
import portal.entidades.Compra;
import portal.entidades.Configuracion;
import portal.entidades.RankingArticulo;
import portal.entidades.Resultado;
import portal.entidades.Usuario;

@Remote
public interface Facade {
	
	// Usuario
	public Usuario login(String email, String password);
	
	//Configuraciones
	
	public List<Configuracion> listar();
	public void eliminarUsuario(Long id);
	public void agregarConfiguracion(Configuracion configuracion);
	public void actualizarConfiguraciones(Configuracion configuracion);

	// Articulos
	public List<Articulo> listarArticulos();
	public List<Articulo> listarArticlosBetSellers();
	public Resultado actualizarRanking(List<RankingArticulo> ranking);
	
	// Compras 
	public Compra crearCompra(Compra compra);
	public List<Compra> listarMisCompras(Long id_usuario);
	public List<Compra> listarCompras();

	public void agregarItemCompra(Long idCompra, Long idArticulo,
			Double precio, Integer cantidad);

	public void eliminarItemCompra(Long idCompra, Long idArticulo);

	public void checkoutCompra(Long idCompra, Double total);

	public void updateItemCompra(Long idCompra, Long idArticulo, Double cantidad);
	
	// Notificar
	public Resultado enviarInformeAuditoria(String moduloId, String fecha, String mensaje);
	public Resultado notificarVenta(Compra compra);

 
}
